<?php
// 简化版流式输出测试脚本
// 用于验证服务器环境下的流式输出是否正常工作

// 设置SSE响应头
header('Content-Type: text/event-stream; charset=utf-8');
header('Cache-Control: no-cache');
header('Connection: keep-alive');
header('Access-Control-Allow-Origin: *');
header('X-Accel-Buffering: no');

// 禁用输出缓冲
while (ob_get_level()) {
    ob_end_clean();
}

ini_set('output_buffering', 'off');
ini_set('zlib.output_compression', 'off');
ini_set('implicit_flush', '1');

// 设置无限制执行时间
set_time_limit(0);

// 发送初始数据
echo "retry: 1000\n\n";
flush();

// 发送开始事件
echo "event: start\n";
echo "data: " . json_encode(['content' => '开始测试流式输出...']) . "\n\n";
flush();

// 发送几条测试消息
for ($i = 1; $i <= 10; $i++) {
    echo "event: content\n";
    echo "data: " . json_encode(['content' => "测试消息 $i"]) . "\n\n";
    flush();
    
    // 安全调用fastcgi_finish_request函数（仅在存在时调用）
    if (function_exists('fastcgi_finish_request')) {
        fastcgi_finish_request();
    }
    
    // 模拟延迟
    usleep(500000); // 0.5秒
}

// 发送结束事件
echo "event: end\n";
echo "data: " . json_encode(['content' => '测试完成']) . "\n\n";
flush();

// 安全调用fastcgi_finish_request函数（仅在存在时调用）
if (function_exists('fastcgi_finish_request')) {
    fastcgi_finish_request();
}

exit;
?>